
/** @addtogroup clientlibs Client Libraries */
/** @{ */
/** @defgroup player_clientlib_libplayerc_py libplayerc_py

Python bindings for @ref player_clientlib_libplayerc are
generated automatically using <a href="http://www.swig.org">SWIG</a>.
The bindings are object-oriented, using standard Python classes (for
those familiar with SWIG, these are standard SWIG shadow classes).


@section libplayerc_py_usage General usage

@ref player_clientlib_libplayerc is based on a device
<i>proxy</i> model, in which the client maintains a local proxy for each
of the devices on the remote server.  Thus, for example, one can create
local proxies for the <tt>position</tt> and <tt>laser</tt> devices.
There is also a special <tt>client</tt> proxy, used to control the Player
server itself.

Programs using the libplayerc Python bindings will generally have the
following structure:

@include joydrive.py.doc

The steps in this program mirror those described for <a
href="index.html">standard C clients</a>.  The key syntactical
difference between the C-version and the Python version is the use of
Python's object-oriented features.


@section libplayerc_py_ref Proxy reference

Generally speaking, the Python bindings are one-to-one mappings to the
libplayerc API.  Thus, the C documentation can be used as a guide, so
long as one makes some minor mental translations; e.g.:

@verbatim
proxy = playerc_position_create(...);     ->   proxy = playerc_position(...)
playerc_position_set_speed(proxy, ...);   ->   proxy.set_speed(...)
@endverbatim

Detailed information for each C proxy can be found in the <a
href="modules.html">Reference</a> section.

*/
